package com.itlong.cloud.sdk.dao;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      云对讲SDK多媒体资源数据库操作接口
 * <desc/>
 *
 * @createDate 2018/05/22
 */
@Mapper
@Repository
public interface ICloudTalkSDKMediaDao {

    /**
     * <desc>
     *      根据条件projectId和deviceUnique获取云对讲设备类型
     * </desc>
     *
     * @param projectId    项目id
     * @param deviceUnique 设备序列号
     * @return 云对讲类型
     * @author wangzhi
     * @createDate 2018/05/22
     */
    Integer getCloudIntercomByProjectIdAndDeviceUnique(@Param("projectId") String projectId, @Param("deviceUnique") String deviceUnique);

    /**
     * <desc>
     *      根据条件projectId和mediaId查询多媒体资源mediaId，用于验证多媒体资源是否存在
     * </desc>
     *
     * @param projectId 项目id
     * @param mediaId   多媒体资源id
     * @return 多媒体资源id
     * @author wangzhi
     * @createDate 2018/05/22
     */
    String getMediaIdByProjectIdAndMediaId(@Param("projectId") String projectId, @Param("mediaId") String mediaId);

    /**
     * <desc>
     *     批量保存多媒体资源信息
     * </desc>
     *
     * @param batchParams 待保存的信息
     * @return
     * @author wangzhi
     * @createDate 2018/05/22
     */
    Integer batchSaveDeviceMediaInfo(List<Map<String,Object>> batchParams);

    /**
     * <desc>
     *     批量保存多媒体资源-门口机信息
     * </desc>
     *
     * @param batchParams 待保存的信息
     * @return
     * @author wangzhi
     * @createDate 2018/05/22
     */
    Integer batchSaveDeviceMediaGate(List<Map<String,Object>> batchParams);

    /**
     * <desc>
     *     批量保存多媒体资源-围墙机信息
     * </desc>
     *
     * @param batchParams 待保存的信息
     * @return
     * @author wangzhi
     * @createDate 2018/05/22
     */
    Integer batchSaveDeviceMediaWall(List<Map<String,Object>> batchParams);

    /**
     * <desc>
     *     根据条件多媒体id删除多媒体资源-门口机关系
     * </desc>
     *
     * @param mediaId 多媒体资源id
     * @return
     * @author wangzhi
     * @createDate 2018/05/22
     */
    Integer removeDeviceMediaGateByMediaId(@Param("mediaId") String mediaId);

    /**
     * <desc>
     *     根据条件多媒体id删除多媒体资源-围墙机关系
     * </desc>
     *
     * @param mediaId 多媒体资源id
     * @return
     * @author wangzhi
     * @createDate 2018/05/22
     */
    Integer removeDeviceMediaWallByMediaId(@Param("mediaId") String mediaId);

    /**
     * <desc>
     *     批量修改多媒体资源信息
     * </desc>
     *
     * @param batchParams 待修改的信息
     * @return
     * @author wangzhi
     * @createDate 2018/05/22
     */
    Integer batchUpdateDeviceMediaInfo(List<Map<String,Object>> batchParams);
}
